--Behavior Tree
--[[
    行为树：基类
--]]

require 'Class'

Behavior = Class() --基类
self = Behavior
---状态类型
self.statusType = 
{
    ---无效的
    invalid = 1,
    ---成功
    success = 2,
    ---失败
    failure = 3,
    ---运行中
    running = 4,
    ---中断
    aborted = 5,
    ---个数
    NUM = 6,
}
---状态
self.status

---初始化（初始执行一次）
function  self.OnInitialize()end
---结束时执行一次
function  self.OnTerminate(status)end
---帧函数
function self.Update()end
---帧循环
function self.Tick()
    if self.status ~= self.statusType.running then
        self.OnInitialize()
    end
    self.status = self.Update()
    if self.status ~= self.statusType.running then
        self.OnTerminate(self.status)
    end
    return self.status
end
---判断是否结束
function  self.IsTerminate()
    return self.status == self.statusType.success 
    or self.status == self.statusType.failure 
end
---判断是否运行中
function self.IsRunning()
    return self.status == self.statusType.running
end